/* 
    前端js 模块 

    //导出  
    // export default 导出的数据
    // export const 数据 
    // export {数据1,数据2}

    // 导入
    // import 变量 from '路径'; //别忘了.js
    // import {} from '路径';

    /// import *  as 别名 from 路径'
    // import 变量,{} from 路径;


    nodejs模块化 


    // common.js模块化规范 


    // 导出 

    // 每个js文件天生自带一个变量叫做 module 
    // 表示的是自己当前模块的所有信息 
    // 每个文件默认导出一个对象 

    // 语法:
    //      module.exports = 模块 
    //      如果想往默认导出的对象添加成员  
    //      module.exports.属性名 = 值
    //      exports.属性名 = 值 

    //      如果想修改默认导出的内容
    //      module.exports = 新值 

    // node 每个文件内 天上也有个变量叫exports 
    // 存储的是 module.exports的地址 
    // 默认是个对象  

    // 如果导出数组 
    // 相当于改了 module.exports的地址 

    // 导入 

    //  每个文件天生自带一个方法  require()
    //  语法是:
    //       require('地址')  // 地址的.js后缀可以省略 
    //  方法的返回值 
    //      该文件向外暴露的内容    module.exports



    // 模块分类 

    // 系统自带的模块  不需要定义 直接导入

    // 第三方模块 
    //  别人写好以后 上传  
    //  我们先下载 再安装 再导入 
    // https://www.npmjs.com/  都上传在这里   

    // 自定义模块  
    //  自己写js文件  
   // 导入导出 





*/


// console.log(module);
/* 
Module {
  id: '.',
  path: 'C:\\www\\2303\\day38', // 当前模块在电脑中的位置 
  exports: {}, // 当前模块向外暴露的内容 
  filename: 'C:\\www\\2303\\day38\\04node模块化.js', // 当前模块完整文件名
  loaded: false, // 这个模块是否被加载过 
  children: [],// 当前这个模块所使用的子模块
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}
*/

module.exports.num = 100;
module.exports.str = '大个';

console.log(module);

/* 
Module {
  id: '.',
  path: 'C:\\www\\2303\\day38',
  exports: { num: 100, str: '大个' }, //向外暴漏num 和str
  filename: 'C:\\www\\2303\\day38\\04node模块化.js',
  loaded: false,
  children: [],
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}

*/

// module.exports.str = '小雨';

// console.log(module);

/* 

Module {
  id: '.',
  path: 'C:\\www\\2303\\day38',
  exports: { num: 100, str: '小雨' }, 导出的内容从大个变成小雨 
  filename: 'C:\\www\\2303\\day38\\04node模块化.js',
  loaded: false,
  children: [],
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}



*/


// 我想导出一个数组  

module.exports = [1,3,6,7,5,8,10];
console.log(module);

/* 
Module {
  id: '.',
  path: 'C:\\www\\2303\\day38',
  exports: { num: 100, str: '大个' },
  filename: 'C:\\www\\2303\\day38\\04node模块化.js',
  loaded: false,
  children: [],
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}
Module {
  id: '.',
  path: 'C:\\www\\2303\\day38',
  exports: [
    1, 3,  6, 7,      // 导出 num 100 str 大个的同时 再导出一个数组 
    5, 8, 10
  ],
  filename: 'C:\\www\\2303\\day38\\04node模块化.js',
  loaded: false,
  children: [],
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}



*/

module.exports = function(){
    return 666
}

console.log(module);

/* 

Module {
  id: '.',
  path: 'C:\\www\\2303\\day38',
  exports: { num: 100, str: '大个' },
  filename: 'C:\\www\\2303\\day38\\04node模块化.js',
  loaded: false,
  children: [],
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}
Module {
  id: '.',
  path: 'C:\\www\\2303\\day38',
  exports: [
    1, 3,  6, 7,
    5, 8, 10
  ],
  filename: 'C:\\www\\2303\\day38\\04node模块化.js',
  loaded: false,
  children: [],
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}
Module {
  id: '.',
  path: 'C:\\www\\2303\\day38',
  exports: [Function (anonymous)],
  filename: 'C:\\www\\2303\\day38\\04node模块化.js',
  loaded: false,
  children: [],
  paths: [
    'C:\\www\\2303\\day38\\node_modules',
    'C:\\www\\2303\\node_modules',
    'C:\\www\\node_modules',
    'C:\\node_modules'
  ]
}

导出 num  str 数组  基础上有导出了 函数 

*/